We’re a cloud technology company that provides organizations around the world with computing infrastructure and software to help them innovate, unlock efficiencies and become more effective. We also created the world’s first–and only–autonomous database to help organize and secure our customers’ data. From nonprofits to companies of all sizes, millions of people use our tools to streamline supply chains, make HR more human, quickly pivot to a new financial plan, and connect data and people around the world.
Microsoft Dynamics 365 Business Central is a comprehensive business management solution that helps small and midsized companies connect their finance, sales, service, and operations teams within a single easy-to-use application. Confidently move to the cloud and unlock the insights needed to adapt faster, work smarter, and perform better.
SAP SE is a German multinational software company based in Walldorf, Baden-Württemberg. It develops enterprise software to manage business operations and customer relations.
Sage Intacct
Odoo is the #1 open source integrated business apps suite. Main apps include Website Builder, eCommerce, CRM, Accounting, Project Management, Warehouse Management, Manufacturing, Human Resources, and Marketing. There is an app for everything you need to manage your business, supported by the largest business app store in the world (https://odoo.com/apps)!
# lets import libraries
from googleapiclient.discovery import build
import pandas as pd
import seaborn as sns
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
Oracle_ERP_channel_id = ['UCHCThmyZ-2yWkv0UVeBDdnQ' # Oracle ERP
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube,Oracle_ERP_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(Oracle_ERP_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube,Oracle_ERP_channel_id)
[{'Channel_name': 'Oracle', 'Subscribers': '126000', 'Views': '35836919', 'Total_videos': '4352'}]
channel_statistics = get_channel_stats(youtube, Oracle_ERP_channel_id)
Oracle_ERP_channel_data =pd.DataFrame(channel_statistics)
Oracle_ERP_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Oracle | 126000 | 35836919 | 4352 |
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
Microsoft_Dynamics_channel_id = ['UCJGCg4rB3QSs8y_1FquelBQ' # ## 2 Microsoft Dynamics 365 Business Central
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, Microsoft_Dynamics_channel_id ):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(Microsoft_Dynamics_channel_id )
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube, Microsoft_Dynamics_channel_id)
[{'Channel_name': 'Microsoft Dynamics 365', 'Subscribers': '79500', 'Views': '5195476', 'Total_videos': '621'}]
channel_statistics = get_channel_stats(youtube, Microsoft_Dynamics_channel_id)
Microsoft_Dynamics_channel_data =pd.DataFrame(channel_statistics)
Microsoft_Dynamics_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Microsoft Dynamics 365 | 79500 | 5195476 | 621 |
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
SAP_software_channel_id = ['UCVnIv2xF2wyMMCSKv1qF3pA' # SAP_software
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, SAP_software_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(SAP_software_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube, SAP_software_channel_id)
[{'Channel_name': 'SAP', 'Subscribers': '107000', 'Views': '49305839', 'Total_videos': '1058'}]
channel_statistics = get_channel_stats(youtube, SAP_software_channel_id)
SAP_software_channel_data =pd.DataFrame(channel_statistics)
SAP_software_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | SAP | 107000 | 49305839 | 1058 |
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
Sage_Intacct_channel_id = ['UC1rfnyYzmBGaUK6Av8hN5SQ' # Sage Intacct
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, Sage_Intacct_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(Sage_Intacct_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube, Sage_Intacct_channel_id)
[{'Channel_name': 'Sage Intacct, Inc.', 'Subscribers': '1810', 'Views': '305662', 'Total_videos': '132'}]
channel_statistics = get_channel_stats(youtube, Sage_Intacct_channel_id)
Sage_Intacct_channel_data =pd.DataFrame(channel_statistics)
Sage_Intacct_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Sage Intacct, Inc. | 1810 | 305662 | 132 |
api_key = 'AIzaSyB24Kop04L1GlTgRCm1XtQ4KB2a4gaBOwA'
Odoo_ERP_channel_id = ['UCkQPikELWZFLgQNHd73jkdg' # Odoo ERP
]
youtube = build('youtube','v3',developerKey = api_key)
from googleapiclient.errors import HttpError
def get_channel_stats(youtube, Odoo_ERP_channel_id):
all_data = []
try:
request = youtube.channels().list(
part='snippet,contentDetails,statistics',
id=','.join(Odoo_ERP_channel_id)
)
response = request.execute()
for item in response.get('items', []):
snippet = item.get('snippet', {})
statistics = item.get('statistics', {})
data = {
'Channel_name': snippet.get('title', ''),
'Subscribers': statistics.get('subscriberCount', ''),
'Views': statistics.get('viewCount', ''),
'Total_videos': statistics.get('videoCount', '')
}
all_data.append(data)
except HttpError as e:
print(f"HTTP error occurred: {e}")
print(f"Request URL: {e.resp.request.url}")
print(f"Request body: {e.resp.request.body}")
return all_data
get_channel_stats(youtube, Odoo_ERP_channel_id)
[{'Channel_name': 'Odoo', 'Subscribers': '177000', 'Views': '28515917', 'Total_videos': '3446'}]
channel_statistics = get_channel_stats(youtube, Odoo_ERP_channel_id)
Odoo_ERP_channel_data =pd.DataFrame(channel_statistics)
Odoo_ERP_channel_data
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Odoo | 177000 | 28515917 | 3446 |
# Combine DataFrames using concat
combined_cloud_ERP_channels_df = pd.concat([
Oracle_ERP_channel_data,
Microsoft_Dynamics_channel_data,
SAP_software_channel_data ,
Sage_Intacct_channel_data ,
Odoo_ERP_channel_data,
], ignore_index=True)
# Display the result
print(combined_cloud_ERP_channels_df)
Channel_name Subscribers Views Total_videos 0 Oracle 126000 35836919 4352 1 Microsoft Dynamics 365 79500 5195476 621 2 SAP 107000 49305839 1058 3 Sage Intacct, Inc. 1810 305662 132 4 Odoo 177000 28515917 3446
# lets have a look at the datatypes
combined_cloud_ERP_channels_df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Channel_name 5 non-null object 1 Subscribers 5 non-null object 2 Views 5 non-null object 3 Total_videos 5 non-null object dtypes: object(4) memory usage: 292.0+ bytes
# lets change the datatypes to perform visualisations
combined_cloud_ERP_channels_df['Subscribers'] = pd.to_numeric(combined_cloud_ERP_channels_df['Subscribers'])
combined_cloud_ERP_channels_df['Views'] = pd.to_numeric(combined_cloud_ERP_channels_df['Views'])
combined_cloud_ERP_channels_df['Total_videos'] = pd.to_numeric(combined_cloud_ERP_channels_df['Total_videos'])
# letsconirm if the datatypes has changed
combined_cloud_ERP_channels_df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 5 entries, 0 to 4 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Channel_name 5 non-null object 1 Subscribers 5 non-null int64 2 Views 5 non-null int64 3 Total_videos 5 non-null int64 dtypes: int64(3), object(1) memory usage: 292.0+ bytes
combined_cloud_ERP_channels_df
Channel_name | Subscribers | Views | Total_videos | |
---|---|---|---|---|
0 | Oracle | 126000 | 35836919 | 4352 |
1 | Microsoft Dynamics 365 | 79500 | 5195476 | 621 |
2 | SAP | 107000 | 49305839 | 1058 |
3 | Sage Intacct, Inc. | 1810 | 305662 | 132 |
4 | Odoo | 177000 | 28515917 | 3446 |
import matplotlib.pyplot as plt
# Sort the DataFrame by 'Subscribers' in descending order
combined_cloud_ERP_channels_df_subscribers_sorted =combined_cloud_ERP_channels_df.sort_values(by='Subscribers', ascending=False)
# Plotting Subscribers in descending order
fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(10, 15))
axes[0].bar(combined_cloud_ERP_channels_df_subscribers_sorted['Channel_name'], combined_cloud_ERP_channels_df_subscribers_sorted['Subscribers'], color='blue')
axes[0].set_title('Subscribers')
# Sort the DataFrame by 'Views' in descending order
combined_cloud_ERP_channels_df_views_sorted = combined_cloud_ERP_channels_df.sort_values(by='Views', ascending=False)
# Plotting Views in descending order
axes[1].bar(combined_cloud_ERP_channels_df_views_sorted['Channel_name'], combined_cloud_ERP_channels_df_views_sorted['Views'], color='green')
axes[1].set_title('Views')
# Sort the DataFrame by 'Total_videos' in descending order
combined_cloud_ERP_channels_df_total_videos_sorted = combined_cloud_ERP_channels_df.sort_values(by='Total_videos', ascending=False)
# Plotting Total Videos in descending order
axes[2].bar(combined_cloud_ERP_channels_df_total_videos_sorted['Channel_name'], combined_cloud_ERP_channels_df_total_videos_sorted['Total_videos'], color='orange')
axes[2].set_title('Total Videos')
# Adjust layout for better visibility
plt.tight_layout()
# Show the plot
plt.show()